package common

type BusinessCode int

type Result struct {
	Code BusinessCode `json:"code"`
	Msg  string       `json:"msg"`
	Data any          `json:"data"`
}

func (r *Result) Success(data any) *Result {
	r.Code = 200
	r.Msg = "success"
	r.Data = data
	return r
}

func (r *Result) GetCaptchaSuccess(data any) *Result {
	r.Code = 200
	r.Msg = "验证码发送成功"
	r.Data = data
	return r
}

func (r *Result) RegisterSuccess() *Result {
	r.Code = 200
	r.Msg = "注册成功"
	r.Data = "嗯？让你小子蒙对了？"
	return r
}

func (r *Result) Fail(code BusinessCode, msg string) *Result {
	r.Code = code
	r.Msg = msg
	r.Data = "哦豁，数据库让你搞坏了"
	return r
}

func (r *Result) BadChat(code BusinessCode, msg string) *Result {
	r.Code = code
	r.Msg = msg
	if msg == "啥玩意太长了，写不进去" {
		r.Data = "联系客服处理"
	}
	if msg != "啥玩意太长了，写不进去" {
		r.Data = "验证码飞走喽～"
	}
	if msg == "邮箱已存在" {
		r.Data = "这个邮箱已经被使用了，换一个吧"
	}
	if msg == "手机号已存在" {
		r.Data = "这个手机号已经被使用了，换一个吧"
	}
	if msg == "账号已存在" {
		r.Data = "这个账号已经被使用了，换一个吧"
	}
	if msg == "用户名已存在" {
		r.Data = "这个用户名已经被占用了，换一个吧"
	}
	return r
}
